Apache Spark 是一个强大的分布式计算框架，广泛用于大数据处理和分析。以下是一个简单的 Spark Java 代码示例，展示了如何使用 Spark 进行基本的 WordCount 操作。

---

### **1. 环境准备**
确保你已经添加了 Spark 的依赖。例如，使用 Maven 时，`pom.xml` 中需要添加以下依赖：

```xml
<dependencies>
    <!-- Spark Core 依赖 -->
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.12</artifactId>
        <version>3.3.0</version>
    </dependency>
</dependencies>
```

---

### **2. Spark WordCount 示例**
以下是一个经典的 WordCount 程序，用于统计文本中每个单词的出现次数。

```java
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import scala.Tuple2;

import java.util.Arrays;

public class SparkWordCount {
    public static void main(String[] args) {
        // 检查输入参数
        if (args.length < 1) {
            System.err.println("Usage: SparkWordCount <input-file> [output-dir]");
            System.exit(1);
        }

        // 输入文件和输出目录
        String inputFile = args[0];
        String outputDir = (args.length > 1) ? args[1] : "output";

        // 创建 Spark 配置
        SparkConf conf = new SparkConf()
                .setAppName("Spark WordCount")
                .setMaster("local[*]"); // 本地模式，使用所有可用核心

        // 创建 Spark 上下文
        JavaSparkContext sc = new JavaSparkContext(conf);

        // 读取输入文件
        JavaRDD<String> lines = sc.textFile(inputFile);

        // 将每行拆分为单词
        JavaRDD<String> words = lines.flatMap(line -> Arrays.asList(line.split(" ")).iterator());

        // 将单词映射为 (word, 1) 的键值对
        JavaPairRDD<String, Integer> wordCounts = words.mapToPair(word -> new Tuple2<>(word, 1));

        // 按单词聚合计数
        JavaPairRDD<String, Integer> counts = wordCounts.reduceByKey((a, b) -> a + b);

        // 保存结果到输出目录
        counts.saveAsTextFile(outputDir);

        // 关闭 Spark 上下文
        sc.close();
    }
}
```

---

### **3. 运行步骤**
1. **准备输入文件**  
   创建一个文本文件（例如 `input.txt`），内容如下：
   ```
   Hello Spark
   Hello World
   Spark is awesome
   ```

2. **编译代码**  
   使用 Maven 编译项目：
   ```bash
   mvn clean package
   ```

3. **提交 Spark 作业**  
   使用 `spark-submit` 运行程序：
   ```bash
   spark-submit --class SparkWordCount --master local[*] target/your-jar-file.jar input.txt output
   ```

4. **查看结果**  
   结果会保存到 `output` 目录中。打开其中一个文件，内容如下：
   ```
   (Hello,2)
   (Spark,2)
   (World,1)
   (is,1)
   (awesome,1)
   ```

---

### **4. 代码解析**
1. **SparkConf**  
   配置 Spark 应用程序的名称和运行模式（如 `local[*]` 表示本地模式，使用所有可用核心）。

2. **JavaSparkContext**  
   Spark 的入口点，用于创建 RDD（弹性分布式数据集）。

3. **RDD 操作**  
   - `textFile`：读取文本文件并创建 RDD。
   - `flatMap`：将每行拆分为单词。
   - `mapToPair`：将单词映射为 `(word, 1)` 的键值对。
   - `reduceByKey`：按单词聚合计数。

4. **保存结果**  
   使用 `saveAsTextFile` 将结果保存到指定目录。

---

### **5. 总结**
以上代码展示了如何使用 Spark 进行简单的 WordCount 操作。Spark 提供了强大的 API，支持分布式数据处理，适用于大规模数据集的分析和计算。你可以根据需要扩展代码，实现更复杂的数据处理任务。